feat: agent-native retrofit (v0.2.0) — JSON mode, MCP server, local Whisper, keychain#1
Merged
Merged
Conversation
…hisper, keychain Non-breaking dual interface so every human TUI flow has a fully non-interactive equivalent for terminal AI agents and scripts. - Agent layer (src/agent): AgentContext + OutputSink (Human/Json/Capture), stable versioned JSON envelope, global --json/--yes/--quiet/--no-color - Stable POSIX exit-code contract in src/errors.ts (adds 6=local-whisper, 7=input) - stdin/stdout composability: transcribe - and prompt - read from stdin - Headless record (--duration/--no-tui), non-interactive config init - recmp3 manifest (discoverable surface) + recmp3 mcp (stdio MCP server) - OS keychain key storage via keytar + config set-key (env still wins) - LocalWhisperProvider (whisper.cpp, no upload) behind TranscriptionProvider - Expanded vitest+msw suite (43 tests); CI test step + OS matrix; release workflow - Fix package.json license MIT -> AGPL-3.0-or-later; docs/AGENTS.md guide https://claude.ai/code/session_01VXWFjbi3ALuvCLVeHdiB79
Add .gitattributes (* text=auto eol=lf) so git never converts LF→CRLF on Windows checkout. Add lineEnding: lf to biome.json so Biome explicitly asserts LF rather than silently accepting CRLF on Windows runners — the combination was causing all 2 Windows matrix jobs to fail the format check. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Non-breaking agent-native retrofit (v0.2.0) on top of the human Ink TUI. Every interactive flow now has a fully non-interactive, machine-readable equivalent; nothing existing changes meaning.
Agent-native layer
AgentContext+OutputSink(Human / Json / Capture) thread one code path through humans, scripts, and MCP{ ok, command, schemaVersion, data | error }--json/--yes/--quiet/--no-color(+RECMP3_JSON/YES/QUIET)transcribe -reads audio from stdin,prompt -reads textrecord --duration/--no-tui; non-interactiveconfig initrecmp3 manifest(discoverable surface) +recmp3 mcp(stdio MCP server, 7 tools)v0.2.0 backlog folded in
LocalWhisperProvider(whisper.cpp, no upload) behind the existingTranscriptionProviderkeytar+config set-key(env still wins; graceful fallback)Housekeeping
package.jsonlicenseMIT→AGPL-3.0-or-later; adddocs/AGENTS.md; update README/CHANGELOG/TODOmaster(repo default branch)Verification
typecheck ✅ · lint ✅ · 43/43 tests ✅ · build ✅ · live MCP
tools/list+tools/call✅